Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Програма побудови таблиці простих чисел

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп’ютерів та комп’ютерних систем

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ, НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Лабораторна робота № 5 з дисципліни "Архітектура комп’ютерів ч.2" Львів – 2013 Тема: Програма побудови таблиці простих чисел Мета : Дослідити техніку конвеєрного виконання програми побудови таблиці простих чисел Хід роботи У даній лабораторній роботі досліджується програма, що будує таблицю простих чисел Базисна версія програми, що буде симулюватися .data .global Count Count: .word 10 .global Table Table: .space Count*4 .text .global main main: ;*** Initialization addi r1,r0,0 ;Index in Table addi r2,r0,2 ;Current value ;*** Determine, if R2 can be divided by a value in table NextValue:addi r3,r0,0 ;Helpindex in Table Loop: seq r4,r1,r3 ;End of Table? bnez r4,IsPrim ;R2 is a prime number lw r5,Table(R3) divu r6,r2,r5 multu r7,r6,r5 subu r8,r2,r7 beqz r8,IsNoPrim addi r3,r3,4 j Loop IsPrim: ;*** Write value into Table and increment index sw Table(r1),r2 addi r1,r1,4 ;*** 'Count' reached? lw r9,Count srli r10,r1,2 sge r11,r10,r9 bnez r11,Finish IsNoPrim:;*** Check next value addi r2,r2,1 ;increment R2 j NextValue Finish: trap 0  Рис.1 Вікно статистики  Рис.2 Вікно конвеєра Як бачимо, було виконано 750 інструкцій, на що пішло 2605 циклів (CPI=3.47). Відбулося 2021 RAW пригальмовування конвеєра,107 пригальмовувань керування і 2 пригальмовування зупинки (trap stalls). Всього зупинок конвеєра 2130 Модифікована (оптимізована) версія програми .data .global Count Count: .word 10 .global Table Table: .space Count*4 .text .global main main: ;*** Initialization addi r1,r0,0 ;Index in Table addi r2,r0,2 ;Current value ;*** Determine, if R2 can be divided by a value in table NextValue: addi r3,r0,0 ;Helpindex in Table Loop: seq r4,r1,r3 ;End of Table? nop bnez r4,IsPrim ;R2 is a prime number lw r5,Table(R3) nop divu r6,r2,r5 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop multu r7,r6,r5 nop nop nop nop subu r8,r2,r7 nop beqz r8,IsNoPrim addi r3,r3,4 j Loop IsPrim: ;*** Write value into Table and increment index sw Table(r1),r2 addi r1,r1,4 ;*** 'Count' reached? lw r9,Count srli r10,r1,2 sge r11,r10,r9 nop bnez r11,Finish IsNoPrim:;*** Check next value addi r2,r2,1 ;increment R2 j NextValue Finish: trap 0 Рис.3 Вікно конвеєра   Рис.5 Вікно коду (вміст пам’яті) – 10 простих чисел Рис.4 Вікно статистики Було виконано 2495 інструкцій, на що пішло 2674 цикли (CPI=1.07) Не відбулося жодного RAW пригальмовування, 107 пригальмовувань керування і 2 пригальмовування зупинки (trap stalls). Всього зупинок конвеєра 109 Для оптимізації було введено декілька “порожніх” інструкції nop та змінено порядок виконання деяких інструкцій Висновок: На лабораторній роботі я опанувала техніку конвеєрного виконання програми побудови таблиці простих чисел
Антиботан аватар за замовчуванням

19.12.2013 22:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини